#ifndef OBJECT_HH_
#	define OBJECT_HH_

#	include "tools/Vector.hh"

/** \class Generic class, mother of Item && Character
 ** simplify physics engine
 ** abstract class
 */


// *WARNING*
//   please consider that almost all object in the game inherits from this class
//   so, try not to add many / specialized attributes

class Object
{
    public:

	// disabling the Ctor (C++11 feature :D)
	//Object() = delete;
    Object();
	virtual ~Object();

	virtual float getWeight();
//  virtual Model3D getModel();
//  virtual Model3D getModelGround();
//  virtual Texture getTexture();
//  virtual Material getMaterial();
//  virtual Coords getPosition();
  virtual float getLength();
  virtual float getHeight();
  virtual float getDepth();


    protected:
//  Model3D _model;
  /** 3D model displayed when the object is on ground
   ** droped Item dead body, ...
   ** cd be == NULL if same as _model
   ** but cd be an opti to do it
   */
//  Model3D _modelGround; // shd really exists ?

  //Texture _texture;
  //Material _material;

  /* 4 an Item, use to calc how much does it slow you down
     4 a character, includes stuff weight */
  float _weight; /// in grams

  /// Object coords
  Vector _position;
  Vector _orientation;

  /// hitbox characteristics
  float _length;
  float _height;
  float _depth;
  // cd add typedef Box Vector3<float>
};

#endif /* !OBJECT_HH_ */
